KILLEDRuntime Complexity (innermost) proof of /tmp/tmpgZLPSE/LengthOfFiniteLists_complete_noand_C.xml
The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(n^1, INF).0 CpxTRS↳1 RenamingProof (⇔, 0 ms)↳2 CpxRelTRS↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)↳4 typed CpxTrs↳5 OrderProof (LOWER BOUND(ID), 0 ms)↳6 typed CpxTrs↳7 RewriteLemmaProof (LOWER BOUND(ID), 658 ms)↳8 BEST↳9 typed CpxTrs↳10 RewriteLemmaProof (LOWER BOUND(ID), 272 ms)↳11 BEST↳12 typed CpxTrs↳13 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳14 typed CpxTrs↳15 RewriteLemmaProof (LOWER BOUND(ID), 82 ms)↳16 BEST↳17 typed CpxTrs↳18 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳19 typed CpxTrs↳20 RewriteLemmaProof (LOWER BOUND(ID), 221 ms)↳21 BEST↳22 typed CpxTrs↳23 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳24 typed CpxTrs↳25 RewriteLemmaProof (LOWER BOUND(ID), 90 ms)↳26 BEST↳27 typed CpxTrs↳28 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳29 typed CpxTrs↳30 RewriteLemmaProof (LOWER BOUND(ID), 152 ms)↳31 BEST↳32 typed CpxTrs↳33 RewriteLemmaProof (LOWER BOUND(ID), 51 ms)↳34 BEST↳35 typed CpxTrs↳36 RewriteLemmaProof (LOWER BOUND(ID), 205 ms)↳37 BEST↳38 typed CpxTrs↳39 RewriteLemmaProof (LOWER BOUND(ID), 154 ms)↳40 BEST↳41 typed CpxTrs↳42 RewriteLemmaProof (LOWER BOUND(ID), 124 ms)↳43 BEST↳44 typed CpxTrs↳45 RewriteLemmaProof (LOWER BOUND(ID), 127 ms)↳46 BEST↳47 typed CpxTrs↳48 RewriteLemmaProof (LOWER BOUND(ID), 72 ms)↳49 BEST↳50 typed CpxTrs↳51 NoRewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳52 typed CpxTrs↳53 RewriteLemmaProof (LOWER BOUND(ID), 64 ms)↳54 BEST↳55 typed CpxTrs↳56 RewriteLemmaProof (LOWER BOUND(ID), 177 ms)↳57 BEST↳58 typed CpxTrs↳59 RewriteLemmaProof (LOWER BOUND(ID), 174 ms)↳60 BEST↳61 typed CpxTrs↳62 RewriteLemmaProof (LOWER BOUND(ID), 84 ms)↳63 BEST↳64 typed CpxTrs↳65 RewriteLemmaProof (LOWER BOUND(ID), 107 ms)↳66 BEST↳67 typed CpxTrs↳68 RewriteLemmaProof (LOWER BOUND(ID), 83 ms)↳69 BEST↳70 typed CpxTrs↳71 RewriteLemmaProof (LOWER BOUND(ID), 90 ms)↳72 BEST↳73 typed CpxTrs↳74 RewriteLemmaProof (LOWER BOUND(ID), 110 ms)↳75 BEST↳76 typed CpxTrs↳77 RewriteLemmaProof (LOWER BOUND(ID), 129 ms)↳78 BEST↳79 typed CpxTrs↳80 RewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳81 BEST↳82 typed CpxTrs↳83 RewriteLemmaProof (LOWER BOUND(ID), 3 ms)↳84 BEST↳85 typed CpxTrs↳86 RewriteLemmaProof (LOWER BOUND(ID), 121 ms)↳87 BEST↳88 typed CpxTrs↳89 RewriteLemmaProof (LOWER BOUND(ID), 92 ms)↳90 BEST↳91 typed CpxTrs↳92 RewriteLemmaProof (LOWER BOUND(ID), 64 ms)↳93 BEST↳94 typed CpxTrs↳95 RewriteLemmaProof (LOWER BOUND(ID), 114 ms)↳96 BEST↳97 typed CpxTrs↳98 RewriteLemmaProof (LOWER BOUND(ID), 107 ms)↳99 BEST↳100 typed CpxTrs↳101 RewriteLemmaProof (LOWER BOUND(ID), 67 ms)↳102 BEST↳103 typed CpxTrs↳104 RewriteLemmaProof (LOWER BOUND(ID), 0 ms)↳105 BEST↳106 typed CpxTrs↳107 RewriteLemmaProof (LOWER BOUND(ID), 100 ms)↳108 BEST↳109 typed CpxTrs↳110 RewriteLemmaProof (LOWER BOUND(ID), 103 ms)↳111 BEST↳112 typed CpxTrs↳113 typed CpxTrs↳114 typed CpxTrs↳115 typed CpxTrs↳116 typed CpxTrs↳117 typed CpxTrs↳118 typed CpxTrs↳119 typed CpxTrs↳120 typed CpxTrs↳121 typed CpxTrs↳122 typed CpxTrs↳123 typed CpxTrs↳124 typed CpxTrs↳125 typed CpxTrs↳126 typed CpxTrs↳127 typed CpxTrs↳128 typed CpxTrs↳129 typed CpxTrs↳130 typed CpxTrs↳131 typed CpxTrs↳132 typed CpxTrs↳133 typed CpxTrs↳134 typed CpxTrs↳135 typed CpxTrs↳136 typed CpxTrs↳137 typed CpxTrs↳138 typed CpxTrs↳139 typed CpxTrs↳140 typed CpxTrs↳141 typed CpxTrs↳142 typed CpxTrs↳143 typed CpxTrs↳144 typed CpxTrs(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0, zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0) → ok(0)
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Rewrite Strategy: INNERMOST(1) RenamingProof (EQUIVALENT transformation)
Renamed function symbols to avoid clashes with predefined symbol.(2) Obligation:
Runtime Complexity Relative TRS:
The TRS R consists of the following rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
S is empty.
Rewrite Strategy: INNERMOST(3) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)
Infered types.(4) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok(5) OrderProof (LOWER BOUND(ID) transformation)
Heuristically decided to analyse the following defined symbols:
active, cons, U12, isNatIListKind, U13, isNatList, U22, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
cons < active
U12 < active
isNatIListKind < active
U13 < active
isNatList < active
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
cons < proper
U12 < proper
isNatIListKind < proper
U13 < proper
isNatList < proper
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(6) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okGenerator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
cons, active, U12, isNatIListKind, U13, isNatList, U22, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
cons < active
U12 < active
isNatIListKind < active
U13 < active
isNatList < active
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
cons < proper
U12 < proper
isNatIListKind < proper
U13 < proper
isNatList < proper
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(7) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)Induction Base:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n5_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(8) Complex Obligation (BEST)
(9) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U12, active, isNatIListKind, U13, isNatList, U22, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U12 < active
isNatIListKind < active
U13 < active
isNatList < active
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U12 < proper
isNatIListKind < proper
U13 < proper
isNatList < proper
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(10) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)Induction Base:
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n3950_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(11) Complex Obligation (BEST)
(12) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
isNatIListKind, active, U13, isNatList, U22, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
isNatIListKind < active
U13 < active
isNatList < active
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
isNatIListKind < proper
U13 < proper
isNatList < proper
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(13) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNatIListKind.(14) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U13, active, isNatList, U22, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U13 < active
isNatList < active
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U13 < proper
isNatList < proper
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(15) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)Induction Base:
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n8213_0, 1)))) →RΩ(1)
mark(U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(16) Complex Obligation (BEST)
(17) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
isNatList, active, U22, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
isNatList < active
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
isNatList < proper
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(18) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNatList.(19) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U22, active, isNatKind, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U22 < active
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U22 < proper
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(20) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)Induction Base:
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n9931_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(21) Complex Obligation (BEST)
(22) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
isNatKind, active, U23, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
isNatKind < active
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
isNatKind < proper
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(23) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNatKind.(24) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U23, active, isNat, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U23 < active
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U23 < proper
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(25) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)Induction Base:
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n14712_0, 1)))) →RΩ(1)
mark(U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(26) Complex Obligation (BEST)
(27) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
isNat, active, U32, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
isNat < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
isNat < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(28) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNat.(29) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U32, active, U33, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(30) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)Induction Base:
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n16689_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(31) Complex Obligation (BEST)
(32) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U33, active, U42, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(33) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)Induction Base:
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n21958_0, 1)))) →RΩ(1)
mark(U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(34) Complex Obligation (BEST)
(35) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U42, active, U43, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(36) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)Induction Base:
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n24161_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(37) Complex Obligation (BEST)
(38) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U43, active, U44, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U43 < active
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U43 < proper
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(39) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)Induction Base:
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n33519_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(40) Complex Obligation (BEST)
(41) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U44, active, U45, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U44 < active
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U44 < proper
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(42) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)Induction Base:
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n43482_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(43) Complex Obligation (BEST)
(44) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U45, active, U46, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U45 < active
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U45 < proper
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(45) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)Induction Base:
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n54050_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(46) Complex Obligation (BEST)
(47) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U46, active, isNatIList, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U46 < active
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U46 < proper
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(48) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)Induction Base:
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n61035_0, 1)))) →RΩ(1)
mark(U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(49) Complex Obligation (BEST)
(50) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
isNatIList, active, U52, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
isNatIList < active
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
isNatIList < proper
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(51) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol isNatIList.(52) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U52, active, U82, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U52 < active
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U52 < proper
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(53) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)Induction Base:
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n64148_0, 1)))) →RΩ(1)
mark(U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(54) Complex Obligation (BEST)
(55) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U82, active, U83, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U82 < active
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U82 < proper
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(56) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)Induction Base:
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n67300_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(57) Complex Obligation (BEST)
(58) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U83, active, U84, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U83 < active
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U83 < proper
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(59) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)Induction Base:
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n79553_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(60) Complex Obligation (BEST)
(61) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U84, active, U85, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U84 < active
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U84 < proper
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(62) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)Induction Base:
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n92411_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(63) Complex Obligation (BEST)
(64) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U85, active, U86, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U85 < active
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U85 < proper
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(65) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)Induction Base:
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n105874_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(66) Complex Obligation (BEST)
(67) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U86, active, U92, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U86 < active
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U86 < proper
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(68) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)Induction Base:
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n114781_0, 1)))) →RΩ(1)
mark(U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(69) Complex Obligation (BEST)
(70) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U92, active, U93, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U92 < active
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U92 < proper
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(71) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)Induction Base:
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n118781_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(72) Complex Obligation (BEST)
(73) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U93, active, U94, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U93 < active
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U93 < proper
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(74) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)Induction Base:
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n133618_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(75) Complex Obligation (BEST)
(76) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U94, active, s, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U94 < active
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U94 < proper
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(77) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)Induction Base:
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n149060_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(78) Complex Obligation (BEST)
(79) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
s, active, length, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
s < active
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
s < proper
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(80) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)Induction Base:
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n159281_0, 1)))) →RΩ(1)
mark(s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(81) Complex Obligation (BEST)
(82) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
length, active, U11, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
length < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
length < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(83) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)Induction Base:
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n163930_0, 1)))) →RΩ(1)
mark(length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(84) Complex Obligation (BEST)
(85) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U11, active, U21, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(86) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)Induction Base:
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n168680_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(87) Complex Obligation (BEST)
(88) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U21, active, U31, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(89) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)Induction Base:
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n179617_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(90) Complex Obligation (BEST)
(91) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U31, active, U41, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(92) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)Induction Base:
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n190858_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(93) Complex Obligation (BEST)
(94) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U41, active, U51, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(95) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)Induction Base:
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n202403_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(96) Complex Obligation (BEST)
(97) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U51, active, U61, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(98) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)Induction Base:
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))Induction Step:
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n220904_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(99) Complex Obligation (BEST)
(100) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U61, active, U71, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U61 < active
U71 < active
U81 < active
U91 < active
active < top
U61 < proper
U71 < proper
U81 < proper
U91 < proper
proper < top(101) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)Induction Base:
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n233155_0, 1)))) →RΩ(1)
mark(U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(102) Complex Obligation (BEST)
(103) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U71, active, U81, U91, proper, topThey will be analysed ascendingly in the following order:
U71 < active
U81 < active
U91 < active
active < top
U71 < proper
U81 < proper
U91 < proper
proper < top(104) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)Induction Base:
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))Induction Step:
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n238805_0, 1)))) →RΩ(1)
mark(U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0)))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(105) Complex Obligation (BEST)
(106) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U81, active, U91, proper, topThey will be analysed ascendingly in the following order:
U81 < active
U91 < active
active < top
U81 < proper
U91 < proper
proper < top(107) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n244556_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2445560)Induction Base:
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n244556_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n244556_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(108) Complex Obligation (BEST)
(109) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n244556_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2445560)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
U91, active, proper, topThey will be analysed ascendingly in the following order:
U91 < active
active < top
U91 < proper
proper < top(110) RewriteLemmaProof (LOWER BOUND(ID) transformation)
Proved the following rewrite lemma:
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264742_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2647420)Induction Base:
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))Induction Step:
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n264742_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264742_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).
(111) Complex Obligation (BEST)
(112) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n244556_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2445560)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264742_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2647420)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))The following defined symbols remain to be analysed:
active, proper, topThey will be analysed ascendingly in the following order:
active < top
proper < top(113) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n244556_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2445560)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264742_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2647420)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(114) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n244556_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2445560)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(115) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n238805_0))) → *4_0, rt ∈ Ω(n2388050)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(116) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n233155_0))) → *4_0, rt ∈ Ω(n2331550)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(117) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n220904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2209040)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(118) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n202403_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2024030)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(119) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n190858_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1908580)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(120) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n179617_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1796170)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(121) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n168680_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1686800)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(122) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n163930_0))) → *4_0, rt ∈ Ω(n1639300)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(123) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n159281_0))) → *4_0, rt ∈ Ω(n1592810)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(124) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n149060_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1490600)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(125) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n133618_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1336180)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(126) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118781_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n1187810)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(127) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)
U86(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n114781_0))) → *4_0, rt ∈ Ω(n1147810)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(128) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)
U85(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n105874_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1058740)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(129) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)
U84(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n92411_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n924110)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(130) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)
U83(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n79553_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n795530)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(131) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)
U82(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n67300_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n673000)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(132) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n64148_0))) → *4_0, rt ∈ Ω(n641480)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(133) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n61035_0))) → *4_0, rt ∈ Ω(n610350)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(134) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n54050_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n540500)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(135) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n43482_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n434820)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(136) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n33519_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n335190)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(137) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n24161_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n241610)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(138) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n21958_0))) → *4_0, rt ∈ Ω(n219580)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(139) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n16689_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n166890)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(140) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n14712_0))) → *4_0, rt ∈ Ω(n147120)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(141) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n9931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n99310)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(142) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n8213_0))) → *4_0, rt ∈ Ω(n82130)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(143) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3950_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n39500)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.
(144) Obligation:
Innermost TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U13(tt)) → mark(tt)
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt, V1, V2)) → mark(U82(isNatKind(V1), V1, V2))
active(U82(tt, V1, V2)) → mark(U83(isNatIListKind(V2), V1, V2))
active(U83(tt, V1, V2)) → mark(U84(isNatIListKind(V2), V1, V2))
active(U84(tt, V1, V2)) → mark(U85(isNat(V1), V2))
active(U85(tt, V2)) → mark(U86(isNatList(V2)))
active(U86(tt)) → mark(tt)
active(U91(tt, L, N)) → mark(U92(isNatIListKind(L), L, N))
active(U92(tt, L, N)) → mark(U93(isNat(N), L, N))
active(U93(tt, L, N)) → mark(U94(isNatKind(N), L))
active(U94(tt, L)) → mark(s(length(L)))
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U61(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U71(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U81(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U91(isNatList(L), L, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U13(X)) → U13(active(X))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X)) → U61(active(X))
active(U71(X)) → U71(active(X))
active(U81(X1, X2, X3)) → U81(active(X1), X2, X3)
active(U82(X1, X2, X3)) → U82(active(X1), X2, X3)
active(U83(X1, X2, X3)) → U83(active(X1), X2, X3)
active(U84(X1, X2, X3)) → U84(active(X1), X2, X3)
active(U85(X1, X2)) → U85(active(X1), X2)
active(U86(X)) → U86(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2)) → U94(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U13(mark(X)) → mark(U13(X))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X)) → mark(U61(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X1), X2, X3) → mark(U81(X1, X2, X3))
U82(mark(X1), X2, X3) → mark(U82(X1, X2, X3))
U83(mark(X1), X2, X3) → mark(U83(X1, X2, X3))
U84(mark(X1), X2, X3) → mark(U84(X1, X2, X3))
U85(mark(X1), X2) → mark(U85(X1, X2))
U86(mark(X)) → mark(U86(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2) → mark(U94(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(tt) → ok(tt)
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U23(X)) → U23(proper(X))
proper(isNat(X)) → isNat(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X)) → U61(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X1, X2, X3)) → U81(proper(X1), proper(X2), proper(X3))
proper(U82(X1, X2, X3)) → U82(proper(X1), proper(X2), proper(X3))
proper(U83(X1, X2, X3)) → U83(proper(X1), proper(X2), proper(X3))
proper(U84(X1, X2, X3)) → U84(proper(X1), proper(X2), proper(X3))
proper(U85(X1, X2)) → U85(proper(X1), proper(X2))
proper(U86(X)) → U86(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2)) → U94(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(nil) → ok(nil)
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
isNatKind(ok(X)) → ok(isNatKind(X))
U23(ok(X)) → ok(U23(X))
isNat(ok(X)) → ok(isNat(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X)) → ok(U61(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X1), ok(X2), ok(X3)) → ok(U81(X1, X2, X3))
U82(ok(X1), ok(X2), ok(X3)) → ok(U82(X1, X2, X3))
U83(ok(X1), ok(X2), ok(X3)) → ok(U83(X1, X2, X3))
U84(ok(X1), ok(X2), ok(X3)) → ok(U84(X1, X2, X3))
U85(ok(X1), ok(X2)) → ok(U85(X1, X2))
U86(ok(X)) → ok(U86(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2)) → ok(U94(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U82 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U83 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U84 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U85 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U86 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:okLemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))No more defined symbols left to analyse.